Çàêðûòü îêíî         Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"

2.6. Còpóêòópa êoìaíäû è òèïû aäpecaöèè

2.6.1. Ïoíÿòèÿ

Koìaíäa - ýòo óêaçaíèe ïpoöeccopó âûïoëíèòü íeêoòopóþ oïepaöèþ íaä íaáopoì peãècòpoì èëè ÿ÷eeê ïaìÿòè. Coâoêóïíocòü âûïoëíÿeìûx ïpoöeccopoì oïepaöèé oápaçóeò cècòeìó êoìaíä.

Koìaíäa 6502 cocòoèò èç êoäa è íe áoëee 1 oïepaíäa è çaíèìaeò â ïaìÿòè oò 1 äo 3 áaéòoâ.

Koä êoìaíäû (1 áaéò) oäíoçía÷ío oïpeäeëÿeò âûïoëíÿeìóþ oïepaöèþ, ó÷acòâóþùèe â íeé peãècòpû, cïocoá çaäaíèÿ oïepaíäa (òèï aäpecaöèè) è, cëeäoâaòeëüío, ïoëíóþ äëèíó êoìaíäû.

Oïepaíä (2 èëè 2-3 áaéòû) çaäaeò êoìaíäe apãóìeíò (÷ècëo), c êoòopûì oía äoëæía paáoòaòü, ccûëêó ía apãóìeíò èëè ccûëêó ía ìecòo, êóäa íaäo ïoìecòèòü peçóëüòaò. Heäocòaþùèe apãóìeíòû xpaíÿòcÿ â ôèêcèpoâaííûx peãècòpax, è peçóëüòaò (êpoìe ïocëeäíeão cëó÷aÿ) òoæe ïoìeùaeòcÿ â peãècòp.

Áeçaäpecíûe êoìaíäû íe èìeþò oïepaíäa è âûïoëíÿþòcÿ íaä ôèêcèpoâaííûìè peãècòpaìè.

Aäpec ÿ÷eéêè apãóìeíòa èëè peçóëüòaòa â ïaìÿòè íaçûâaeòcÿ ècïoëíèòeëüíûì.

2.6.2. Hèæe ïpè oïècaíèè òèïoâ aäpecaöèè ècïoëüçóþòcÿ oáoçía÷eíèÿ:

   M - ècïoëíèòeëüíûé aäpec,
   N - aäpec òeêóùeé êoìaíäû (áaéòa c êoäoì),
   (A) - aäpec ÿ÷eéêè íóëeâoé còpaíèöû (ìëaäøèé áaéò, ò.ê. còapøèé paâeí 0 è äoáaâëÿeòcÿ aâòoìaòè÷ecêè), çaïècaííûé â cëoâe A, 
   (A,A+1) - aäpec, çaïècaííûé â cëoâax A è A+1.

B çaãoëoâêax ïoäïóíêòoâ óêaçaíû íaçâaíèe, oáoçía÷eíèe òèïa aäpecaöèè è äëèía êoìaíäû ïpè äaííoì òèïe. Bo âcex ïpèìepax apãóìeíòoì áóäeò ÷ècëo ¤78.

2.6.2.1. Heïocpeäcòâeííaÿ: # (2 áaéòa).

Apãóìeíò íaxoäèòcÿ íeïocpeäcòâeíío â ïoëe oïepaíäa:

    M=N+1
          N : êoä
         N+1: 78

2.6.2.2. Hóëeâoé còpaíèöû: Z (2 áaéòa).

Apãóìeíò íaxoäèòcÿ â óêaçaííoé oïepaíäoì ÿ÷eéêe íóëeâoé còpaíèöû:

    M=(N+1)
          N : êoä        0026: 78
         N+1: 26

2.6.2.3. Aácoëþòíaÿ: A (3 áaéòa).

Ècïoëíèòeëüíûé aäpec çaïècaí â ïoëe oïepaíäa, aäpecóeòcÿ âcÿ äocòóïíaÿ ïaìÿòü:

    M=(N+1,N+2)
          N : êoä        2A65: 78
         N+1: 65
         N+2: 2A

2.6.2.4. Aácoëþòíûe èíäeêcíûe: A,X (3 áaéòa),

A,Y (3 áaéòa).

Ècïoëíèòeëüíûé aäpec cäâèíóò oòíocèòeëüío óêaçaííoão â oïepaíäe ía coäepæèìoe peãècòpa X èëè Y (öeëoe áeç çíaêa):

    M=(N+1,N+2)+X
          N : êoä  X=12  53C0: 78
         N+1: AE
         N+2: 53
    M=(N+1,N+2)+Y
          N : êoä  Y=FF  0856: 78
         N+1: 57
         N+2: 07

2.6.2.5. Kopoòêaÿ èíäeêcíaÿ: Z,X (2 áaéòa).

To æe, ÷òo A,X , ío oïepaíä oäíoáaéòoâûé, è èíäeêcaöèÿ âeäeòcÿ ïo íóëeâoé còpaíèöe öèêëè÷ecêè!

    M=(N+1)+X
          N : êoä  X=10  0008: 78
         N+1: F8

2.6.2.6. Kocâeíío-èíäeêcíaÿ: (Z,X) (2 áaéòa).

Ècïoëíèòeëüíûé aäpec xpaíèòcÿ â äâóx ïocëeäoâaòeëüíûx áaéòax íóëeâoé còpaíèöû; aäpec ìëaäøeão èç íèx oïpeäeëÿeòcÿ òèïoì Z,X :

    M=((N+1)+X,(N+1)+X+1)
          N : êoä  X=06  0040: DE  32DE: 78
         N+1: 3A         0041: 32

2.6.2.7. Èíäeêcío-êocâeííaÿ: (Z),Y (2 áaéòa).

Ècïoëíèòeëüíûé aäpec oïpeäeëÿeòcÿ ïpèáaâëeíèeì coäepæèìoão Y ê aäpecó, xpaíÿùeìócÿ â äâóx ïocëeäoâaòeëüíûx áaéòax íóëeâoé còpaíèöû; aäpec ìëaäøeão èç íèx óêaçaí â oïepaíäe:

    M=((N+1),(N+1)+1)+Y     
          N : êoä  Y=04  0067: 43  BF47: 78
         N+1: 67         0068: BF

2.6.2.8. Oòíocèòeëüíaÿ: R (2 áaéòa).

Ècïoëíèòeëüíûé aäpec oïpeäeëÿeòcÿ cìeùeíèeì oòíocèòeëüío cëeäóþùeé êoìaíäû ía óêaçaííoe â oïepaíäe ÷ècëo áaéòoâ (öeëoe co çíaêoì); ècïoëüçóeòcÿ òoëüêo â êoìaíäax ócëoâíoão ïepexoäa:

    M=N+2+(N+1),      ecëè 00 <= (N+1) <= 7F
    M=N+2-¤100+(N+1), ecëè 80 <= (N+1) <= FF

2.6.2.9. Ècêëþ÷eíèÿ.

Kocâeííaÿ aäpecaöèÿ áeç ècïoëüçoâaíèÿ peãècòpoâ è ïo aáoëþòíoìó aäpecó ïpeäócìoòpeía äëÿ êoìaíäû ïepexoäa:

    JMP (A)          

ïpè÷eì, êoãäa aäpec ïpèxoäèòcÿ ía ãpaíèöó còpaíèö, òo còapøèé áaéò aäpeca áepeòcÿ èç íóëeâoão áaéòa òoé æe còpaíèöû (oøèáêa cxeìû ïpoöeccopa):

    JMP (¤3FF) - aäpec âoçüìeòcÿ èç áaéòoâ ¤3FF è ¤300.

Kopoòêaÿ èíäeêcíaÿ aäpecaöèÿ â êoìaíäax LDX, STX opãaíèçóeòcÿ ÷epeç peãècòp Y:

    LDX Z,Y
    STX Z,Y

B äpóãèx cëó÷aÿx ïpè íeoáxoäèìocòè èíäeêcaöèè íóëeâoé còpaíèöû ÷epeç Y cëeäóeò âocïoëüçoâaòücÿ aácoëþòíoé èíäeêcíoé.

2.7. Oïècaíèe êoìaíä

Hèæe ïpè oïècaíèè ècïoëüçóeòcÿ ìíeìoíè÷ecêaÿ ôopìa çaïècè êoìaíä. Míeìoêoä oáoçía÷aeòcÿ òpeìÿ ëaòèícêèìè áóêâaìè. Áóêâoé M oáoçía÷aeòcÿ apãóìeíò, äpóãèìè áóêâaìè - coäepæèìoe peãècòpoâ. Óêaçaíû äoïócòèìûe òèïû aäpecaöèè, êoäû êoìaíä è èçìeíeíèe peãècòpoâ cocòoÿíèÿ.

2.7.1. Koìaíäû ïepecûëêè èç ïaìÿòè â peãècòpû:

        M->A   M->X   M->Y   

  Míeì:  LDA    LDX    LDY

   #  :  A9     A2     A0     N V B D I Z C
   Z  :  A5     A6     A4     * - - - - * -
   A  :  AD     AE     AC
  Z,X :  B5    ^B6     B4
  A,X :  BD     -      BC
  A,Y :  B9     BE     -
 (Z,X):  A1     -      - 
 (Z),Y:  B1     -      -      ^ LDX Z,Y

2.7.2. Koìaíäû ïepecûëêè èç peãècòpoâ â ïaìÿòü:

        A->M   X->M   Y->M

  Míeì:  STA    STX    STY

   Z  :  85     86     84     N V B D I Z C
   A  :  8D     8E     8C     - - - - - - -
  Z,X :  95    ^96     94
  A,X :  9D     -      -
  Y,X :  99     -      -
 (Z,X):  81     -      -
 (Z),Y:  91     -      -      ^ STX Z,Y

3. Meæpeãècòpoâûe ïepecûëêè:

 A->X  X->A  A->Y  Y->A  X->S  S->X

  TAX   TXA   TAY   TYA   TXS   TSX      N V B D I Z C
  AA    8A    A8    98    9A    BA       * - - - - * -

4. Apèôìeòè÷ecêèe oïepaöèè:

     A+M+C->A  A-M-(1-C)->A

  Míeì:  ADC    SBC

   #  :  69     E9            N V B D I Z C
   Z  :  65     E5            * * - - - * *
   A  :  6D     ED
  Z,X :  75     F5
  A,X :  7D     FD
  A,Y :  79     F9
 (Z,X):  61     E1
 (Z),Y:  71     F1

5. Oïepaöèè cpaâíeíèÿ:

         A-M    X-M    Y-M  (íè oäèí peãècòp íe ìeíÿeòcÿ) 

  Míeì:  CMP    CPX    CPY

   #  :  C9     E0     C0     N V B D I Z C
   Z  :  C5     E4     C4     * - - - - * *
   A  :  CD     EC     CC
  Z,X :  D5     -      -
  A,X :  DD     -      -
  A,Y :  D9     -      -
 (Z,X):  C1     -      -
 (Z),Y:  D1     -      -

6. Ëoãè÷ecêèe oïepaöèè:

      A&M->A  A!M->A  A%M->A  A&M  (ïopaçpÿäío) 

  Míeì:  AND    ORA    EOR    BIT

   #  :  29     09     49     -     N V B D I Z C
   Z  :  25     05     45     24    * - - - - * -
   A  :  2D     0D     4D     2C   d7d6 - - - * - (BIT)
  Z,X :  35     15     55     -
  A,X :  3D     1D     5D     -
  A,Y :  39     19     49     -    & - ëoã. È
 (Z,X):  21     01     41     -    ! - ëoã. ÈËÈ
 (Z),Y:  31     11     51     -    % - ècêë. ÈËÈ

7. Oïepaöèè cäâèãa:

   Apèôìeòè÷.cäâèã M  Öèêëè÷.cäâèã M
       âëeâo  âïpaâo  âëeâo  âïpaâo
       
  Míeì:  ASL    LSR    ROL    ROR

  aêê.:  0A     4A     2A     6A    N V B D I Z C
   Z  :  06     46     26     66    * - - - - *d7 (âëeâo)
   A  :  0E     4E     2E     6E    * - - - - *d0 (âïpaâo)
  Z,X :  16     56     36     76
  A,X :  1E     5E     3E     7E

Aêêóìóëÿòopíaÿ aäpecaöèÿ - äeécòâèe íaä peãècòpoì A, oïepaíä â ýòoì cëó÷ae íe çaäaeòcÿ.

8. Óìeíüøeíèe è óâeëè÷eíèe ía 1:

       M+1->M M-1->M X+1->X Y+1->Y X-1->X  Y-1->Y

  Míeì:  INC    DEC    INX    INY    DEX    DEY
                       E8     C8     CA     88
   Z  :  E6     C6
   A  :  EE     CE                  N V B D I Z C
  Z,X :  F6     D6                  * - - - - * -
  A,X :  FE     DE

9. Ócòaíoâêa áèòoâ cëoâa cocòoÿíèÿ:

         C     V     D     I

   â 0:  CLC   CLV   CLD   CLI      äpóãèe áèòû
         18    B8    D8    58       íe ìeíÿþòcÿ

   â 1:  SEC    -    SED   SEI      áeçaäpecíûe
         38          F8    78

10. Ócëoâíûe ïepexoäû:

Äeécòâèe:            PC+2+M->PC
 Ócëoâèe: Z=1  Z=0  N=1  N=0  C=1  C=0  V=1  V=0

          BEQ  BNE  BMI  BPL  BCS  BCC  BVS  BVC
          F0   D0   30   10   B0   90   70   50

oòíocèòeëüíaÿ aäpecaöèÿ, áèòû cocòoÿíèÿ íe ìeíÿþòcÿ

11. Ïepexoäû:

                   Äeécòâèÿ           Míeì  Tèï:êoä
Áeçócëoâíûé      : M->PC               JMP  A:4C (A):6C
Ha ïoäïpoãpaììó  : âcò PC+2,M->PC      JSR  A:20
Boçâpaò èç ï/ï   : èçcò PC, PC+1->PC   RTS  60
Boçâpaò èç ïpep-ÿ: èçcò P, èçcò PC     RTI  40

12. Oïepaöèè co còeêoì:

     âcò A  âcò P  èçcò A  èçcò P

      PHA    PHP     PLA    PLP   (PLA âoçäeécòâóeò
      48     08      68     28     ía ïpèçíaêè Z,N)

13. Ïpo÷èe:

   Heò oïepaöèè  Ocòaíoâ(âcò P,âcò PC+2,(FFFA,FFFB)->PC)

         NOP      BRK
         EA       00

2.8. Câoäêa êoìaíä ïpoöeccopa 6502.

B òaáëèöe ÷epeç òo÷êó óêaçaíû âpeìÿ ècïoëíeíèÿ êoìaíäû â òaêòax è ee øecòíaäöaòepè÷íûé êoä.

     (Z,X)   Z     #     A   (Z),Y   Z,X   A,Y   A,X

ORA ! 6.01  3.05  2.09  4.OD  5.11  4.15  4.19  4.1D
AND ! 6.21  3.25  2.29  4.2D  5.31  4.35  4.39  4.3D
EOR ! 6.41  3.45  2.49  4.4D  5.51  4.55  4.59  4.5D
ADC ! 6.61  3.65  2.69  4.6D  5.71  4.75  4.79  4.7D
STA 1 6.81  3.85        4.8D  5.91  4.95  5.99  5.9D
LDA ! 6.A1  3.A5  2.A9  4.AD  5.B1  4.B5  4.B9  4.BD
CMP ! 6.C1  3.C5  2.C9  4.CD  5.D1  4.D5  4.D9  4.DD
SBC ! 6.E1  3.E5  2.E9  4.ED  5.F1  4.F5  4.F9  4.FD
ASL !       5.06  2.0A* 6.0E        6.16        7.1E
ROL !       5.26  2.2A* 6.2E        6.36        7.3E
LSR !       5.46  2.4A* 6.4E        6.76        7.5E
ROR !       5.66  2.6A* 6.6E        6.96        7.7E
DEC !       5.C6        6.CE        6.D6        7.DE
INC !       5.E6        6.EE        6.F6        7.FE
BIT !       3.24        4.8C
STX !       3.84        4.8C        4.94
STY !       3.86        4.8E        4.96*
LDY !       3.A4  2.A0  4.AC        4.B4        4.BC
LDX !       3.A6  2.A2  4.AE        4.B6* 4.BE
CPY !       3.C4  2.C0  4.CC
CPX !       3.E4  2.E0  4.EC
JMP !                   3.4C  5.6C*
JSR !                   6.20
Ècêëþ÷eíèÿ: ASL, LSR, ROL, ROR # -> aêêóìóëÿòopíaÿ
            LDX, STX Z,X -> Z,Y
            JMP (Z),Y -> (A)

BPL   BMI   BVC   BVS   BCC   BCS   BNE   BEQ
2.10  2.30  2.50  2.70  2.90  2.B0  2.D0  2.F0

CLC   SEC   CLI   SEI   NOP   CLV   CLD   SED
2.18  2.38  2.58  2.78  2.EA  2.B8  2.D8  2.F8

PHP   PLP   PHA   PLA   DEY   INY   DEX   INX
3.08  4.28  3.48  4.68  2.88  2.C8  2.CA  2.E8

TXA   TXS   TAX   TSX   TYA   TAY   RTI   RTI   BRK
2.8A  2.9A  2.AA  2.BA  2.98  2.A8  6.40  6.60  7.00

Çàêðûòü îêíî         Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"